package com.tanhua.server.intercepror;

import com.tanhua.model.db.User;

/**
 * ThreadLocal处理的工具类
 */
public class UserHolder {

    /**
     * 1、定义ThreadLocal对象，通过泛型，指定存入线程中的数据类型
     * 2、调用set：存入数据
     * 3、调用get：取出数据
     * 4、调用remove：删除线程中数据
     */
    private static ThreadLocal<User> tl = new ThreadLocal<>();

    /**
     * 将用户存入线程
     */
    public static void set(User user) {
        tl.set(user);
    }

    /**
     * 从线程取出数据
     */
    public static User getUser() {
        return tl.get();
    }

    /**
     * 获取当前用户的id
     */
    public static Long getUserId() {
        return tl.get().getId();
    }

    /**
     * 获取当前用户的手机号
     */
    public static String getMobile() {
        return tl.get().getMobile();
    }

    /**
     * 删除线程数据
     */
    public static void remove() {
        tl.remove();
    }
}
